Device ranking for secure collaboration

ABSTRACT

A computer implemented method for ranking devices according to compatibility with a collaboration service includes receiving a set of collaboration information and a set of device information, wherein the collaboration information includes a service through which the collaboration is available and the set of device information corresponds to one or more registered devices, determining contextual information corresponding to the collaboration, wherein the contextual information includes minimum device requirements for participation in the collaboration, calculating compatibility metrics for one or more participant devices according to the received set of device information and the determined contextual information corresponding to the collaboration, ranking the one or more registered devices according to the calculated compatibility metrics, and enabling a device to access the collaboration according to the device rankings.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of computernetworking, and more specifically to ranking devices according to theircompatibility with a service.

As technology develops, users connect with networks with a variety ofdevices, or endpoints. Each such device may have different capabilities,network connection details, security aspects, and applicationsinstalled. These devices may be used by an end user to participate inany number of collaborative services. In some cases, one user device maybe preferable to another for connection to a particular collaborativeservice.

SUMMARY

As disclosed herein, a computer implemented method for ranking devicesaccording to compatibility with a collaboration service includesreceiving a set of collaboration information and a set of deviceinformation, wherein the collaboration information includes a servicethrough which the collaboration is available and the set of deviceinformation corresponds to one or more registered devices, determiningcontextual information corresponding to the collaboration, wherein thecontextual information includes minimum device requirements forparticipation in the collaboration, calculating compatibility metricsfor one or more participant devices according to the received set ofdevice information and the determined contextual informationcorresponding to the collaboration, ranking the one or more registereddevices according to the calculated compatibility metrics, and enablinga device to access the collaboration according to the device rankings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a block diagram of components of a device ranking system100 in accordance with at least one embodiment of the present invention;

FIG. 2 is a flowchart depicting a bounded liveness extension method inaccordance with at least one embodiment of the present invention; and

FIG. 3 depicts a block diagram of components of a computer, inaccordance with some embodiments of the present invention.

DETAILED DESCRIPTION

While techniques exist for testing a current device's capabilities asthey relate to system requirements of a collaboration, there exists aneed for determining the capabilities of other known user devices asthey relate to a collaboration and providing a ranking accordingly. Themethod and system disclosed herein enable analyzing a set of known userdevices according to their compatibilities with a collaboration. Thepresent invention will now be discussed with respect to the Figures.

FIG. 1 depicts a block diagram of components of a device ranking system100 in accordance with at least one embodiment of the present invention.As depicted, device ranking system 100 includes two participants 110, acalendar management system 120, a conference management system 130, asecurity context system 140, rank information storage 150, andregistered device storage 160. Device ranking system 100 enablesanalysis and ranking of one or more user devices with respect to acollaboration of interest.

As depicted, each of the two participants 110 has a plurality ofregistered devices 112. In the depicted embodiment, each participant 110has 3 registered devices 112, but it should be understood that in otherembodiments there may be any number of participants, and eachparticipant may have any number of registered devices. In someembodiments, each registered device 112 corresponds to a device that theparticipant 110 has registered with the security context system 140.Each registered device 112 may be a desktop computer, laptop computer,specialized computer server, tablet, cellphone, or any other electronicdevice or combination of electronic devices capable of accessing acollaboration of interest.

Calendar management system 120 may be an online calendar managed oraccessed by any participant 110. In some embodiments, calendarmanagement system 120 corresponds to a system that hosts a webapplication that allows one or more users to edit, and optionally sharewith other users, online access to a calendar. In some embodiments,calendar management system 120 provides one or more scheduled events toa conference management system. Calendar management system 120 mayadditionally provide event details for the one or more scheduled events,such as listed participants, scheduling information, locationinformation, or event details. In some embodiments, calendar managementsystem 120 provides one or more scheduled events responsive to receivinga query from either conference management system 130 or device analysissystem 140.

Conference management system 130 may be a system or server capable ofhosting various collaborative services. Collaborative services mayinclude applications for hosting webinars, webcasts, peer-level webmeetings, or any other web-based collaboration applications. In someembodiments, conference management system 130 enables real-timepoint-to-point communications as well as multicast communications fromone sender to many receivers. Conference management system 130 mayadditionally offer data streams of text-based messages, voice and videochat to be shared simultaneously, across geographically dispersedlocations. With respect to the depicted embodiment, conferencemanagement system 130 is configured to receive event information fromcalendar management system 120. Based on the event information,conference management system 130 identifies one or more systemrequirements corresponding to the event. Additionally, conferencemanagement system 130 may be configured to identify one or more systemfeatures which may impact event performance. For example, for a videoconference, conference management system 130 may determine that a webcamor other camera is required. Additionally, conference management systemmay identify a minimum network connection strength, as well asidentifying network connection strength as a feature that may impactevent performance.

Device management system 140 can be a desktop computer, laptop computer,specialized computer server, or any other computer system known in theart. In some embodiments, device management system 140 represents acomputer system utilizing clustered computers and components to act as asingle pool of seamless resources. In general, device management system140 is representative of any electronic device, or combinations ofelectronic devices, capable of executing machine-readable programinstructions, as described in greater detail with regard to FIG. 3.

With respect to the depicted embodiment, device management system 140may receive event information from a conference management system.Additionally, device management system 140 may receive one or moresystem requirements from conference management system 130 as well as oneor more features that may impact event performance. Device managementsystem 140 may additionally be configured to receive device informationfrom either participants 110, devices 112, or conference managementsystem 130. Device management system 140 may be configured to execute adevice analysis method to provide device rankings corresponding to anevent. One example of a device analysis method is discussed with respectto FIG. 2.

Rank information storage 150 may be any non-volatile storage media knownin the art. For example, rank information storage 150 can be implementedwith a tape library, optical library, one or more independent hard diskdrives, or multiple hard disk drives in a redundant array of independentdisks (RAID). Similarly, data in rank information storage 150 mayconform to any suitable storage architecture known in the art, such as afile, a relational database, an object-oriented database, and/or one ormore tables. With respect to the depicted embodiment, rank informationstorage 150 is configured to receive device rankings from deviceanalysis system 140. Rank information storage 150 may additionally beconfigured to store a ranking profile or ranking information, wherein aranking profile indicates one or more criteria according to whichdevices are ranked.

Registered device storage 160 may be any non-volatile storage mediaknown in the art. For example, registered device storage 160 can beimplemented with a tape library, optical library, one or moreindependent hard disk drives, or multiple hard disk drives in aredundant array of independent disks (RAID). Similarly, data inregistered device storage 160 may conform to any suitable storagearchitecture known in the art, such as a file, a relational database, anobject-oriented database, and/or one or more tables. With respect to thedepicted embodiment, registered device storage is configured to storereceived information corresponding to the one or more registered devices112. While in the depicted embodiment registered device storage 160 andrank information storage 150 are implemented separately, it should beappreciated that rank information and registered device information maybe stored together in other embodiments.

FIG. 2 is a flowchart depicting a device analysis method 200 inaccordance with at least one embodiment of the present invention. Asdepicted, device analysis method 200 includes receiving (210) meetinginformation and device information, determining (220) contextualinformation corresponding to the meeting, calculating (230)compatibility metrics for one or more participant devices, ranking (240)according to the calculated compatibility metrics, determining (250)whether a context change has occurred, providing (260) the devicerankings, and enabling (270) access to the collaboration according tothe device rankings. Device analysis method 200 may enable a user todetermine which of his/her devices is the most adequate for accessing acollaboration.

Receiving (210) meeting information and device information may includereceiving a list of participants for a collaboration of interest, aswell as scheduling information for said collaboration. In someembodiments, receiving (210) meeting information includes receivingdevice information corresponding to one or more registered devices foreach of the participants. Device information may include device type(computer, tablet, phone, etc.), security credentials, device features(webcam, microphone, etc.), networking capabilities, device owner, orany other characteristic of a device capable of connecting to acollaboration service. In some embodiments, receiving (210) meetinginformation includes enabling users to register one or more devices.

Determining (220) contextual information corresponding to thecollaboration may include identifying one or more device features orcapabilities required to effectively participate in the collaboration ofinterest. In some embodiments, determining (220) contextual informationcorresponding to the collaboration includes determining minimum systemrequirements for accessing the collaboration of interest. Additionally,the determined contextual information may include features that are notrequired but can be used to rank devices further. For example, acollaboration may not indicate a certain image quality corresponding toa device's camera, but a device's camera's image resolution can be usedto rank devices. Some contextual information may simply be pass or failconditions; in other words, the contextual information may indicatefeatures that a device must have to participate in the collaboration.Other features included in the contextual information, as discussedabove, may not be required, but can be analyzed to contribute to adevice ranking.

Calculating (230) compatibility metrics for one or more participantdevices may include determining the compatibility of each registereddevice with the determined contextual information. In other words,calculating (230) compatibility metrics for a participant deviceincludes analyzing said device with respect to each of the featuresindicated by the contextual information. For example, if the contextualinformation indicates that the collaboration of interest is a videoconference, the contextual information may indicate a minimumconnectivity rating, a camera, and a microphone are required to takepart in the collaboration. Additionally, the contextual information mayindicate that devices with higher connectivity ratings and higher cameraresolutions are ranked higher. With respect to this contextualinformation, calculating (230) compatibility metrics includesdetermining whether a participant device meets each of the pass failconditions. In this example, if a device lacks a camera or microphone,or does not meet the minimum connectivity rating, then the device isflagged as incompatible with the collaboration. Each device that passeseach of these conditions is then analyzed according to its cameraresolution and connectivity rating. weighted more heavily than otherswhen calculating the total device ranking.

Ranking (240) according to the calculated compatibility metrics mayinclude determining a ranking for the one or more registered devicesaccording to the calculated compatibility metrics. With respect to theexample discussed previously, a device with a higher camera resolutionwill be given a superior ranking, and a device with a higherconnectivity rating will be given a higher ranking. In some embodiments,the rankings with respect to the individual features are averaged toprovide a total device ranking. Certain features may be weighted moreheavily than others. For example, a device's connectivity may beweighted twice as heavily as a devices camera resolution.

Determining (250) whether a context change has occurred may includemonitoring whether the collaboration details have changed. Examples of acontext change include a change in event type, a change in participants,a change in time, or a change in the associated device requirements. Insome embodiments, a collaboration service may be configured to providean alert any time the collaboration details are updated. If a contextchange has occurred (250, yes branch), the method continues by returningto calculating (230) compatibility metrics. If a context change has notoccurred (250, no branch), the method continues by providing (260) thedevice rankings.

Providing (260) the device rankings may include providing the determineddevice rankings to the users of said devices. In one embodiment,providing (260) the device rankings includes displaying only therankings of devices registered by a particular user to said user.Providing (260) the device rankings may additionally include providingthe determined rankings to a storage location. In some embodiments, thedevice rankings may be stored in the same place as the initial deviceregistration information.

Enabling (270) access to the collaboration according to the devicerankings may include granting collaboration access to one or moreregistered devices according to the determined device rankings. Forexample, if device rankings are calculated according to some securityattribute or feature of the devices, it may be detrimental for a devicethat falls below the minimum security requirements to have access to thecollaboration. Therefore, such a device may be denied accessaccordingly. In other embodiments, each user may be allowed to accessthe collaboration via only a single device at a time. In suchembodiments, a user may be able to either select any of his/her devicesthat meet the minimum device requirements, or may be required to usehis/her highest ranked device to access the collaboration to facilitatethe best collaboration results for all participants.

FIG. 3 depicts a block diagram of components of computer 300 inaccordance with an illustrative embodiment of the present invention. Itshould be appreciated that FIG. 3 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

As depicted, the computer 300 includes communications fabric 302, whichprovides communications between computer processor(s) 304, memory 306,persistent storage 308, communications unit 312, and input/output (I/O)interface(s) 314. Communications fabric 302 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric302 can be implemented with one or more buses.

Memory 306 and persistent storage 308 are computer-readable storagemedia. In this embodiment, memory 306 includes random access memory(RAM) 116 and cache memory 318. In general, memory 306 can include anysuitable volatile or non-volatile computer-readable storage media.

One or more programs may be stored in persistent storage 308 for accessand/or execution by one or more of the respective computer processors304 via one or more memories of memory 306. In this embodiment,persistent storage 308 includes a magnetic hard disk drive.Alternatively, or in addition to a magnetic hard disk drive, persistentstorage 308 can include a solid state hard drive, a semiconductorstorage device, read-only memory (ROM), erasable programmable read-onlymemory (EPROM), flash memory, or any other computer-readable storagemedia that is capable of storing program instructions or digitalinformation.

The media used by persistent storage 308 may also be removable. Forexample, a removable hard drive may be used for persistent storage 308.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage308.

Communications unit 312, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 312 includes one or more network interface cards.Communications unit 312 may provide communications through the use ofeither or both physical and wireless communications links.

I/O interface(s) 314 allows for input and output of data with otherdevices that may be connected to computer 300. For example, I/Ointerface 314 may provide a connection to external devices 320 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 320 can also include portable computer-readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention can be stored on such portablecomputer-readable storage media and can be loaded onto persistentstorage 308 via I/O interface(s) 314. I/O interface(s) 314 also connectto a display 322.

Display 322 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer program product for ranking devicesaccording to compatibility with a service, the computer program productcomprising: one or more computer readable storage media and programinstructions stored on the one or more computer readable storage media,the program instructions comprising instructions to: receive a set ofcollaboration information and a set of device information, wherein thecollaboration information includes a service through which thecollaboration is available and the set of device information correspondsto one or more registered devices; determine contextual informationcorresponding to the collaboration, wherein the contextual informationincludes minimum device requirements for participation in thecollaboration and optional device features corresponding to theparticipation; calculate compatibility metrics for the one or moreregistered devices according to the received set of device informationand the determined contextual information corresponding to thecollaboration; rank the one or more registered devices with respect tothe collaboration according to the calculated compatibility metrics toidentify a preferred device according to the rankings, wherein thepreferred device corresponds to the registered device ranked highest;and enable the preferred device to access the collaboration according tothe device rankings.
 2. The computer program product of claim 1, whereinthe set of device information includes one or more device features forthe one or more registered devices.
 3. The computer program product ofclaim 1, wherein the instructions to rank the one or more registereddevices include instructions to aggregate the calculated compatibilitymetrics for the one or more participant devices and ranking the devicesaccording to the aggregation.
 4. The computer program product of claim1, wherein the instructions to calculate compatibility metrics for adevice include instructions to determine whether said device meets oneor more minimum device requirements as indicated by the contextualinformation.
 5. The computer program product of claim 1, wherein theinstructions to calculate compatibility metrics for a device includeinstructions to analyze a device with respect to one or more featuresrelevant to the collaboration as indicated by the contextualinformation.
 6. The computer program product of claim 1, the programinstructions further comprising instructions to provide the devicerankings to one or more users.
 7. The computer program product of claim1, the program instructions further comprising instructions to generatea list of the device rankings.
 8. A computer system for ranking devicesaccording to compatibility with a service, the computer program productcomprising: one or more computer processors; one or more computerreadable storage media; program instructions stored on the one or morecomputer readable storage media, the program instructions comprisinginstructions to: receive a set of collaboration information and a set ofdevice information, wherein the collaboration information includes aservice through which the collaboration is available and the set ofdevice information corresponds to one or more registered devices;determine contextual information corresponding to the collaboration,wherein the contextual information includes minimum device requirementsfor participation in the collaboration and optional device featurescorresponding to the participation; calculate compatibility metrics forthe one or more registered devices according to the received set ofdevice information and the determined contextual informationcorresponding to the collaboration; rank the one or more registereddevices with respect to the collaboration according to the calculatedcompatibility metrics to identify a preferred device according to therankings, wherein the preferred device corresponds to the registereddevice ranked highest; and enable the preferred device to access thecollaboration according to the device rankings.
 9. The computer systemof claim 8, wherein the set of device information includes one or moredevice features for the one or more registered devices.
 10. The computersystem of claim 8, wherein the instructions to rank the one or moreregistered devices includes instructions to aggregate the calculatedcompatibility metrics for the one or more participant devices and rankthe devices according to the aggregation.
 11. The computer system ofclaim 8, wherein the instructions to calculate compatibility metrics fora device include instructions to determine whether said device meets oneor more minimum device requirements as indicated by the contextualinformation.
 12. The computer system of claim 8, wherein theinstructions to calculate compatibility metrics for a device includeinstructions to analyze a device with respect to one or more featuresrelevant to the collaboration as indicated by the contextualinformation.
 13. The computer system of claim 8, the programinstructions further comprising instructions to provide the devicerankings to one or more users.